package com.yjzx.util.service.aop.ref.method;

import java.lang.annotation.*;

/**
 * @author yjzx
 * @date 2024/8/7
 * @description 对象修改锁定
 */
@Target({ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public  @interface RefUnmodifiableObject {
    /**
     * 是否开启
     * @return
     */
    boolean enable() default true;
    /**
     * 特定可执行的方法（优先最高，可覆盖不可修改的方法和字段）
     * @return
     */
    RefExcludeMethod[] includeMethods() default {};
    /**
     * 不可执行的方法
     * @return
     */
    RefExcludeMethod[] excludeMethods() default {};
    /**
     * 不可修改的字段
     * @return
     */
    String[] excludeFields() default {};


}
